Career 2025 2024 2023 2022 2021 2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010
All Rounds Final 1/2 1/4 First Second Third Fourth Pre-q Rubber 1 Rubber 2 Rubber 3 Rubber 4 Rubber 5 Robin Bronze Q3 N/A Q2 Q1 ER Q4 CR QF Q5 N/A
All Courts Acrylic N/A Clay Grass Carpet Hard I.hard
All Tour Milan Challenger M25+H Kassel Wimbledon - London Pozoblanco Challenger Segovia Challenger Zhangjiagang Challenger Porto Challenger Zhuhai Challenger M25 Sharm ElSheikh Mallorca Challenger U.S. Open - New York Shanghai Challenger Malaga Challenger M25 Sharm ElSheikh Zhuhai Open - Zhuhai Orleans Challenger M25 Monastir Alicante Challenger Hamburg Challenger Olbia Challenger Brest Challenger Matsuyama Challenger M25 Monastir M25 Esch/Alzette M15 Sharm ElSheikh Barcelona Challenger M25 Loughborough Glasgow Challenger M25 Sunderland M25 Nussloch Pau Challenger Ostrava Challenger M25 Vale do Lobo M25 Kachreti M25 Loule Oeiras 3 Challenger Tulln Challenger M15 Bol Split Challenger Millennium Estoril Open - Estoril M25 Valldoreix Zagreb Challenger Augsburg Challenger Kachreti Challenger M25 Sabadell Oeiras 4 Challenger M25 Idanha-a-Nova M25 Nottingham M25 Aldershot M25 Mungia-Laukariz Prague Challenger M25 Elvas M25 Satu Mare M25 Setubal Porto Challenger M25 Castelo Branco M25 Idanha-a-Nova Karlsruhe Challenger Poznan Challenger Iasi Challenger M25 Roda de Bara M25 Bakio Dobrich Challenger M15 Wroclaw M25 Porto Dobrich 2 Challenger Porto 2 Challenger Lisbon Challenger Sibiu Challenger M25 Sharm ElSheikh M15 Sharm ElSheikh M25 Vila Real de Santo Antonio M15 Sharm ElSheikh Braga Challenger M25 Sharm ElSheikh M15 Luanda M25 Sintra M25 Sintra M25 Monastir M15 Sharm ElSheikh Oeiras 2 Challenger M15 Monastir M15 Sharm ElSheikh M25 Faro M25 Vila Real de Santo Antonio M15 Luanda M25 Setubal M15 Sharm ElSheikh M25 Vale do Lobo M25 Nussloch Oeiras 3 Challenger M25 Nottingham M15 Ceuta M25 Vale do Lobo Grodzisk Mazowiecki Challenger M15 Monastir Maia Challenger M15 Oslo Oeiras 1 Challenger Brasov Challenger Milan Challenger Tampere Challenger M25 Tbilisi M15 Monastir Zug Challenger Mouilleron-Le-Captif Challenger Cassis Challenger Tbilisi Challenger M15 Monastir Chisinau Challenger Seoul Challenger Heilbronn Challenger Porto 2 Challenger Poznan Challenger Royan Challenger Braunschweig Challenger Iasi Challenger Bunschoten Challenger Porto Challenger Sofia 2 Challenger Augsburg Challenger Seville Challenger Todi Challenger Matsuyama Challenger Biella Challenger Suzhou Challenger Bad Waltersdorf Challenger Lisbon Challenger Braga Challenger Hersonissos 5 Challenger M25 Monastir Shenzhen Challenger Kobe Challenger Davis Cup, Group II, 1R, HKG-LAT 2-3 Davis Cup, Group I, PO, NOR-LAT 4-0 Portugal F5 Portugal F1 Portugal F2 Portugal F4 Portugal F5 Portugal F3 Spain F25 Portugal F4 Portugal F5 Brazil F31 Brazil F32 Portugal F2 Portugal F3 Portugal F4 Egypt F2 Egypt F3 Egypt F4 Portugal F5 Portugal F6 Portugal F7 Spain F26 Spain F27 Spain F30 Spain F33 Portugal F9 Portugal F10 Portugal F11 Egypt F32 Egypt F33 Spain F41 Spain F42 Turkey F49 Turkey F50 Portugal F1 Portugal F2 Portugal F3 Turkey F7 Turkey F8 Turkey F9 Portugal F4 Portugal F5 Portugal F6 Belgium F2 Belgium F3 Belgium F4 Belgium F5 Spain F21 Romania F2 Romania F13 Portugal F8 Portugal F9 Portugal F10 Portugal F11 Turkey F42 Turkey F43 Tunisia F3 Tunisia F4 Portugal F3 Morocco F2 Morocco F3 Italy F6 Portugal F4 Portugal F7 Mozambique F1 Mozambique F2 Spain F18 Belgium F13 Spain F28 Egypt F36 Egypt F37 Egypt F38 Egypt F39 Turkey F5 Turkey F6 Turkey F7 Portugal F3 Egypt F9 Egypt F10 Czech Republic F4 Romania F15 Turkey F47 Turkey F48 Egypt F1 (Sharm El Sheikh) Egypt F4 (Sharm El Sheikh) Egypt F5 (Sharm El Sheikh) Egypt F6 (Sharm El Sheikh) Portugal F5 (Quinta Da Marinha) Portugal F6 (Porto) Portugal F7 (Carcavelos) Ukraine F1 (Cherkassy) Ukraine F2 (Cherkassy) Romania F2 (Bacau) Tunisia F22 (Hammamet) Portugal F10 (Torres Vedras) Portugal F11 (Povoa de Varzim) Portugal F12 (Idanha-A-Nova) Portugal F13 (Idanha-A-Nova) Belgium F10 (Lambermont) Tunisia F27 (Hammamet) Tunisia F28 (Hammamet) Tunisia F29 (Hammamet) Germany F14 (Oberhaching) Tunisia F30 (Hammamet) Greece F6 (Heraklion) Greece F7 (Heraklion) Czech Republic F11 (Valasske Mezirici) Germany F2 (Nussloch) Portugal F1 (Vale Do Lobo) Greece F2 (Heraklion) Portugal F3 (Loule) Greece F3 (Heraklion) Portugal F5 (Vilamoura) Greece F4 (Heraklion) Portugal F6 (Lisbon) Greece F5 (Heraklion) Portugal F7 (Porto) Portugal F8 (Cascais) Poland F1 (Wisla) Poland F2 (Wisla) Czech Republic F1 (Prague) Czech Republic F3 (Most) Tunisia F23 (Hammamet) Germany F4 (Kaltenkirchen) Germany F5 (Kamen) Germany F6 (Saarlouis) Germany F7 (Bad Schussenried) Portugal F14 (Sintra) Germany F12 (Karlsruhe) Portugal F15 (Sintra) Poland F8 (Poznan) Tunisia F33 (Monastir) Tunisia F34 (Monastir) Tunisia F35 (Monastir) Vietnam F4 (Tay Ninh) Vietnam F5 (Tay Ninh) Thailand F8 (Nonthaburi) Thailand F9 (Nonthaburi) Czech Republic F11 (Ricany) Czech Republic F12 (Prague) M15 Monastir M15 Monastir M15 Monastir M25 Barnstaple M25 Glasgow M15 Sharm El Sheikh M15 Sharm El Sheikh M15 Sharm El Sheikh M15 Sharm El Sheikh M25 Prijedor M25 Doboj M15 Brcko M25 Kiseljak M15 Setubal M15 Idanha-A-Nova M15 Idanha-A-Nova M15 Castelo Branco M25 Poznan M15 Pajulahti M25 Shrewsbury M25 Tavira M15 Bad Salzdetfurth M15 Heraklion M15 Heraklion M15 Alkmaar M15 Caslano M15 Sintra M15 Forbach M15 Setubal M25 Hamburg M15 Sarreguemines M15 Heraklion M15 Heraklion M15 Manacor M15 Manacor M15 Sharm El Sheikh M15 Sharm El Sheikh M15 Sharm El Sheikh M15 Sharm El Sheikh M15 Poitiers M25 Biel M15 Monastir M15 Monastir M15 Monastir M15 Monastir M15 Monastir M15 Monastir M15 Gaiba M25 Montauban M15 Monastir M15 Gdynia M15 Lodz M15 Monastir M15 Forbach M25 Nevers M25+H Rodez M25 Toulouse M15 Monastir M25 Monastir M25 Vilnius M15 Monastir M25 Sharm ElSheikh M15 Sharm ElSheikh M15 Sharm ElSheikh M15 Bhopal M15 Bengaluru M15 New Delhi M15 Antalya M15 Antalya M15 Antalya M15 Antalya M15 Vaasa M15 Raanana M15 Raanana M15 Monastir M15 Monastir M15 Monastir M15 Monastir M25 Aldershot M25 Roehampton M15 Sozopol M15 Sozopol M15 Parnu M15 Selva Gardena M15 Monastir M15 Sharm ElSheikh M15 Sharm ElSheikh M25 Veigy-Foncenex M25 Sheffield M15 Oberhaching M15 Sharm ElSheikh M15 Sharm ElSheikh M15 Sharm ElSheikh M15 Sharm ElSheikh M25 Sanxenxo M25 Nottingham M25 Most M25 Cordoba Sao Leopoldo Challenger Guimaraes Challenger Segovia Challenger Itajai Challenger Sao Paulo Challenger Santos Challenger Segovia Challenger Ortisei Challenger Casablanca Challenger New Delhi Challenger Kolkata Challenger Mersin Challenger Eskisehir Challenger Todi Challenger Tampere Challenger Segovia Challenger Manerbio Challenger Campinas Challenger Porto Alegre Challenger Sao Paulo Challenger Bangkok Challenger Bangkok Challenger Manila Challenger Napoli Challenger Barletta Challenger Turin Challenger Rome Challenger Samarkand Challenger Mestre Challenger Caltanissetta Challenger Perugia Challenger Bastad Challenger Poznan Challenger Tampere Challenger Prague Challenger Cordenons Challenger Manerbio Challenger Bangkok Challenger Lisbon Challenger Milan Challenger Braga Challenger Mestre Challenger Blois Challenger Zhangjiagang Challenger Shanghai Challenger Kaohsiung Challenger Almaty Challenger Tashkent Challenger Bratislava Challenger Bangalore Challenger Pune Challenger Lille Challenger Sophia Antipolis Challenger Braga Challenger Lisbon Challenger Jerusalem Challenger Bratislava Challenger Milan Challenger Amersfoort Challenger Prague Challenger Sopot Challenger Augsburg Challenger Manerbio Challenger L'Aquila Challenger Baotou Challenger Jinan Challenger Kaohsiung Challenger Ningboo Challenger Liuzhou Challenger Shenzhen Challenger Helsinki Challenger Bengalaru Challenger Bergamo Challenger Nur-Sultan Challenger Prague II Challenger Ostrava Challenger Prostejov Challenger Split Challenger Lisbon Challenger Istanbul Challenger Parma Challenger Sao Paulo Challenger Maia Challenger Nur-Sultan 1 Challenger Nur-Sultan 2 Challenger Biella 3 Challenger Prague Challenger Zagreb Challenger Oeiras 3 Challenger Biella 7 Challenger Bratislava Challenger Porto Challenger Segovia Challenger Mallorca Challenger Kyiv Challenger Braga Challenger Lisbon Challenger Mouilleron-Le-Captif Challenger Alicante Challenger Brest Challenger Tenerife Challenger Bratislava Challenger Helsinki Challenger Traralgon Challenger Forli 3 Challenger Bengalaru 1 Challenger Tunis Challenger Troisdorf Challenger Poznan Challenger Nottingham Challenger Malaga Challenger Porto Challenger Iasi Challenger Tampere Challenger San Benedetto Challenger Meerbusch Challenger Banja Luka Challenger Mallorca Challenger Toulouse Challenger Seville Challenger Braga Challenger Lisbon Challenger Alicante Challenger St. Tropez Challenger Hamburg Challenger Vilnus Challenger Yokohama Challenger Matsuyama Challenger Kobe Challenger Yokkaichi Challenger Ottignies-Louvain-la-Neuve Challenger Chennai Challenger Bengaluru Challenger Pune Challenger St. Brieuc Challenger Girona Challenger San Luis Potosi Challenger Madrid Challenger Oeiras 3 Challenger Morelos Challenger Ostrava Challenger Leon Challenger Aix En Provence Challenger Francavilla Challenger Oeiras 4 Challenger Troisdorf Challenger Prostejov Challenger Perugia Challenger Poznan Challenger Estoril Open - Estoril Estoril Open - Estoril Estoril Open - Estoril Portugal Open - Oeiras Portugal Open - Oeiras Grand Prix Hassan II - Casablanca Millennium Estoril Open - Estoril Millennium Estoril Open - Estoril Millennium Estoril Open - Estoril Millennium Estoril Open - Estoril European Open - Antwerp Tata Open Maharashtra - Pune Sofia Open - Sofia Murray River Open - Melbourne Open 13 Provence - Marseille Abierto Mexicano Telcel - Acapulco Millennium Estoril Open - Estoril Millennium Estoril Open - Estoril Miami Open - Miami Wimbledon - London Australian Open - Melbourne French Open - Paris Australian Open Qualifying - Doha Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne Wimbledon - London Australian Open - Melbourne French Open - Paris Davis Cup, Group I, 1R, SLO-POR 3-2 Davis Cup, Group I, PO, RUS-POR 4-1 Davis Cup, Group II, 1R, POR-MAR 4-1 Davis Cup, Group II, 2R, POR-FIN 4-1 Davis Cup, Group I, 1R, POR-ISR 5-0 Davis Cup, World Group I, PO, LTU-POR 0-4 Davis Cup, World Group II, PO, LAT-EGY 4-1 Davis Cup, Group II, 1R, LAT-DOM 3-2 Davis Cup, Group II, PO, THA-LAT 2-3 Davis Cup, Group I, PO, LAT-ISR 2-3 Wimbledon (juniors) U.S. Open (juniors) Australian Open (juniors) French Open (juniors) Wimbledon (juniors) U.S. Open (juniors) French Open (juniors) Wimbledon (juniors) U.S. Open (juniors) All Lower level tournaments